package cn.harry.modular.achievement.domain;

import cn.harry.common.base.BaseEntity;
import cn.hutool.core.date.DatePattern;
import com.baomidou.mybatisplus.annotation.SqlCondition;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 科研项目表
 * @TableName achievement_research_projects
 */
@EqualsAndHashCode(callSuper = true)
@TableName(value ="achievement_research_projects")
@Data
public class AchievementResearchProjects extends BaseEntity {

    /**
     * 封面
     */
    @Schema(description = "封面")
    private String cover;
    /**
     * 用户ID
     */
    @Schema(description = "用户ID")
    private Long userId;
    /**
     * 项目名称
     */
    @TableField(condition = SqlCondition.LIKE)
    @Schema(description = "项目名称")
    private String projectName;

    /**
     * 项目编号
     */
    @TableField(condition = SqlCondition.LIKE)
    @Schema(description = "项目编号")
    private String projectNumber;

    /**
     * 项目类型
     */
    @Schema(description = "项目类型")
    private String projectType;

    /**
     * 立项单位
     */
    @Schema(description = "立项单位")
    private String approvingUnit;

    /**
     * 项目负责人
     */
    @Schema(description = "项目负责人")
    private String projectLeader;

    /**
     * 项目成员
     */
    @Schema(description = "项目成员")
    private String projectMembers;

    /**
     * 立项日期
     */
    @Schema(description = "立项日期")
    private String approvalDate;

    /**
     * 项目结束日期
     */
    @Schema(description = "项目结束日期")
    private String projectEndDate;

    /**
     * 研究领域
     */
    @Schema(description = "研究领域")
    private String researchField;
    /**
     * 下载次数
     */
    @Schema(description = "下载次数")
    private Integer downloadCount;

    /**
     * 状态 0 待审核 1 已审核 2 审核拒绝
     */
    @Schema(description = "状态 0 待审核 1 已审核 2 审核拒绝")
    private String state;

    /**
     * 文件内容
     */
    @Schema(description = "文件内容")
    private String content;

    /**
     * 附件存储路径
     */
    @Schema(description = "附件存储路径")
    private String attachmentPath;
}